/*
 * @Author: 于欣汝1 12613083+yu-xinru-1@user.noreply.gitee.com
 * @Date: 2023-03-20 13:10:47
 * @LastEditors: 于欣汝1 12613083+yu-xinru-1@user.noreply.gitee.com
 * @LastEditTime: 2023-04-18 22:28:23
 * @FilePath: \web-frontend\src\pages\base\contact\InputDialog\index.tsx
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import { ModalForm, ProForm, ProFormInstance, ProFormSelect,ProFormText } from '@ant-design/pro-components';
import { message } from 'antd';
import { useEffect, useRef } from 'react';
import { waitTime } from '@/utils/request';
import { addContact, updateContact } from '@/services/api/contact';
interface InputDialogProps {
    detailData?: API.ContactDTO;
    visible: boolean;
    onClose: (result: boolean) => void;
  }
  export default function InputDialog(props: InputDialogProps) {
    const form = useRef<ProFormInstance>(null);
    
    useEffect(() => {
        waitTime().then(() => {
          if (props.detailData) {
            form?.current?.setFieldsValue(props.detailData);
          } else {
            form?.current?.resetFields();
          }
        });
      }, [props.detailData, props.visible]);
    const onFinish = async (values: any) => {
    const { contact,departmentName, contactPhone,province,address,email} = values;
    const data: API.ContactDTO = {
        id: props.detailData?.id,
        contact,
        departmentName,
        contactPhone,
        province,
        address,
        email,
        };
        let result;
        if (props.detailData) {
            result = await updateContact(data);
          } else {
            result = await addContact(data);
          }
          if(typeof(result)!=='undefined'){
            props.onClose(true);
            message.success('保存成功');
          }
          return true;
  }
  return (
    <ModalForm
      width={600}
      onFinish={onFinish}
      formRef={form}
      modalProps={{
        destroyOnClose: true,
        onCancel: () => props.onClose(false),
      }}
      title={props.detailData ? '修改联系人' : '新建联系人'}
      open={props.visible}
    >
      <ProFormText
        name="contact"
        label="联系人名称"
        rules={[
          {
            required: true,
            message: '请输入联系人名称！',
          },
        ]}
      />
      <ProForm.Group>
        <ProFormText
          name="departmentName"
          label="部门名称"
          rules={[
            {
              required: true,
              message: '请输入部门名称！',
            },
          ]}
        />
        <ProFormText
          name="contactPhone"
          label="联系电话"
          rules={[
            {
              required: true,
              message: '请输入联系人名称！',
            },
          ]}
        />
        <ProFormSelect
          name="province"
          label="所在省份"
          options={[  { value: '北京市', label: '北京市' },  { value: '天津市', label: '天津市' },  { value: '河北省', label: '河北省' },  { value: '山西省', label: '山西省' },  { value: '内蒙古自治区', label: '内蒙古自治区' },  { value: '辽宁省', label: '辽宁省' },  { value: '吉林省', label: '吉林省' },  { value: '黑龙江省', label: '黑龙江省' },  { value: '上海市', label: '上海市' },  { value: '江苏省', label: '江苏省' },  { value: '浙江省', label: '浙江省' },  { value: '安徽省', label: '安徽省' },  { value: '福建省', label: '福建省' },  { value: '江西省', label: '江西省' },  { value: '山东省', label: '山东省' },  { value: '河南省', label: '河南省' },  { value: '湖北省', label: '湖北省' },  { value: '湖南省', label: '湖南省' },  { value: '广东省', label: '广东省' },  { value: '广西壮族自治区', label: '广西壮族自治区' },  { value: '海南省', label: '海南省' },  { value: '重庆市', label: '重庆市' },  { value: '四川省', label: '四川省' },  { value: '贵州省', label: '贵州省' },  { value: '云南省', label: '云南省' },  { value: '西藏自治区', label: '西藏自治区' },  { value: '陕西省', label: '陕西省' },  { value: '甘肃省', label: '甘肃省' },  { value: '青海省', label: '青海省' },  { value: '宁夏回族自治区', label: '宁夏回族自治区' },  { value: '新疆维吾尔自治区', label: '新疆维吾尔自治区' },  { value: '台湾省', label: '台湾省' },  { value: '香港特别行政区', label: '香港特别行政区' },  { value: '澳门特别行政区', label: '澳门特别行政区' },]}
          rules={[
            {
              required: true,
              message: '请输入所在省份！',
            },
          ]}
        />
        <ProFormText
          name="address"
          label="详细地址"
          rules={[
            {
              required: true,
              message: '请输入详细地址！',
            },
          ]}
        />
        <ProFormText
          name="email"
          label="邮箱"
          rules={[
            {
              required: true,
              message: '请输入邮箱！',
            },
          ]}
        />
      </ProForm.Group>
    </ModalForm>
  );
}